{{tag>administration système console terminal }}
----

====== Tmux  (terminal multiplexer)  ======

**[[wpfr>Tmux]]**, à l'instar de [[:Screen]], est un multiplexeur de terminaux, outil permettant d'exploiter plusieurs terminaux au sein d'un seul et même affichage.

===== Installation =====
Tmux n'est pas installé par défaut (contrairement à Screen). 
Pour l'installer à l'aide d'un utilitaire graphique il suffit d'[[:tutoriel:comment_installer_un_paquet|Installer le paquets]] **[[apt>tmux]]**.\\
Par l'installer avec [[:apt-get]] depuis un [[:terminal]], il suffit de saisir la [[:commande_shell|commande]] suivante :
<code>
sudo apt-get install tmux
</code>

===== Utilisation de tmux =====
Depuis le [[:unity#tableau_de_bord_dash|tableau de bord (dash)]], un [[:terminal]] ou encore une [[:console]] saisissez la [[:commande_shell|commande]] suivante :
<code>
tmux
</code>

===== Les principaux raccourcis =====
Tmux fait appel à l'ensemble de touches <Ctrl> + <b> là ou Screen fait appel à <Ctrl> + <a>. 

<note tip>Les raccourcis et fonctions étant proches voire identiques à ceux de Screen, pour mieux les comprendre, reportez-vous à la page [[:Screen]].</note>

==== Raccourcis de base ====
  * <Ctrl> + <b> suivi de <c> : Créer un nouveau terminal dans la session tmux active
  * <Ctrl> + <b> suivi de <n> : Switcher entre les différents terminaux de la session
  * <Ctrl> + <b> suivi de <X> : Choisir un terminal spécifique (ou X est le numéro du terminal)
  * <Ctrl> + <b> suivi de <d> : Se détacher de la session tmux
  * <Ctrl> + <b> suivi de <,> : Permet de renommer un terminal
  * <Ctrl> + <b> suivi de <w> : Affiche la liste des terminaux disponibles
  * <Ctrl> + <b> suivi de <t> : Afficher l’heure dans un terminal

==== Commandes dans un Split  ====

  * <Ctrl> + <b> suivi de <«>  : Split vertical du terminal courant en deux + ouverture d’un terminal dans le nouveau panel
  * <Ctrl> + <b> suivi de <%> : Split horizontal du terminal courant en deux + ouverture d’un terminal dans le nouveau panel
  * <Ctrl> + <b> suivi de <o> : Switcher entre les terminaux splittés
  * <Ctrl> + <b> suivi de <espace> : Changer l’organisation visuelle des terminaux splittés
  * <Ctrl> + <b> suivi de <Alt> + (flèches directionnelles) : Reduire, agrandir fenêtre du split
  * <Ctrl> + <b> suivi de <!> : Convertir un split en terminal seul
  * <Ctrl> + <b> suivi de <q> : Afficher les numéros des terminaux splittés
  * <Ctrl> + <b> puis saisissez //:join// : permet de joindre un terminal seul dans un split

Par exemple, après avoir tapé le combo <Ctrl>+<b> si vous saisissez
<code>:join -v -s 3.0 -p 50</code>
Où :
  * //-h// ou //-v// : pour horizontalement ou verticalement
  * //-s 3.0// : terminal 3 et volet 0 (volet si écran splitté)
  * //-p 50// : occupation à 50% de la fenêtre
Ici donc vous ajouterez verticalement, un terminal numéroté 3 et qui prendra 50% de l’espace total.


===== Utilisation à distance =====
Il peut être intéressant de se rattacher rapidement à un Tmux sur une machine distant à travers [[:ssh]].

==== Préparation ====
Pour cela, [[:tutoriel:comment_modifier_un_fichier|ouvrez le fichier]] **~/.bash_aliases** ((fichier caché dans votre //Dossier Personnel//)) pour y ajouter la ligne suivante :
<file>
function ssh_tmux() { ssh -t "$1" tmux a || ssh -t "$1" tmux; }
</file>

==== Utilisation ====
<code>
ssh_tmux user@servername
</code>
Où :
  * //user// est votre login 
  * //servername// l'adresse de la machine à contacter.
Si vous perdez la connexion réseau, relancer la commande et retrouvez votre terminal Tmux.

Pour plus d'informations sur ce type de connexion à distance, reportez-vous à la page [[:ssh]].

==== Voir aussi ====
  * [[http://tmux.sourceforge.net/|Le site officiel de Tmux]]
  * [[http://denisrosenkranz.com/tuto-introduction-a-tmux-terminal-multiplexer/|Cette page]] et [[http://denisrosenkranz.com/tuto-personnalisation-de-tmux-via-son-fichier-de-configuration/|celle-ci]] qui ont été utiles pour créer cette page.

----